package cliente.pagina.contenido.actividades;

import cliente.pagina.contenido.*;
import cliente.pagina.*;
import comun.constantes.*;
import helpers.actividades.HelperRecibirYEvaluar;
import helpers.actividades.grupo.HelperActividadesGrupos;
/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author unascribed
 * @version 1.0
 */

public class ContenidoTrabajosNoEntregados extends VistaContenido {
	HelperActividadesGrupos helperActividadesGrupos = null;

  public ContenidoTrabajosNoEntregados() {
  }

  public ContenidoTrabajosNoEntregados(Pagina pagina) {
//    this.setPagina(pagina);
    super(pagina);
    this.setPermisoEscritura(this.getPagina().obtenerPermisoRecurso(this.getNombreRecurso()).compareTo(TIPO_PERMISOS.ESCRITURA)==0);
  }


  public String getTitulo() {
    /**@todo Implement this cliente.pagina.contenido.VistaContenido abstract method*/
    return TITULOS_PAGINAS.ACTIVIDADES_NO_RECIBIDAS;
  }

  public String getTeclaAccesoRapido() {	
		return "v";
	}
  public String getTituloLink() {
    /**@todo Implement this cliente.pagina.contenido.VistaContenido abstract method*/
    throw new java.lang.UnsupportedOperationException("Method getTituloLink() not yet implemented.");
  }

  public String getSubcarpetaRecurso()
  {
    return CARPETAS_ARCHIVOS_RECURSO.ACTIVIDADES+"/";
  }

  public String getNombreRecurso() {
    /**@todo Implement this cliente.pagina.contenido.VistaContenido abstract method*/
    return RECURSOS.RECIBIR_Y_EVALUAR_ACTIVIDADES;
  }

// redefino el metodo abstracto de Vista contenido
protected String getNombrePagina()
{
  return "trabajos_no_entregados.jsp";
}


  public String getHTMLVista() {
	  HelperRecibirYEvaluar helperRecibirYEvaluar = null;
    try {
      // NECESITO SABER SI MUESTRO TODOS O SOLO ALGUNOS TRABAJOS,
      int cantidadAMostrar=0;
      // ver cuantos trabajos mostrar
      String cantidadItemsAMostrar = this.getPagina().getParameter(PARAMETROS_PAGINAS.CANTIDAD_ITEMS_A_MOSTRAR);
      if ((cantidadItemsAMostrar!=null) && (cantidadItemsAMostrar.compareTo("0")==0))
        cantidadAMostrar=0;
      else
        cantidadAMostrar=CONSTANTES_ENTERAS.CANTIDAD_DE_TRABAJOS_A_MOSTRAR;

      this.helperActividadesGrupos = new HelperActividadesGrupos(this.getPagina());
      this.helperActividadesGrupos.actualizarProrroga();
      String htmlEvaluacion = "";
      if (this.isPermisoEscritura()) htmlEvaluacion += this.helperActividadesGrupos.generarHTMLEvaluacion();
      this.helperActividadesGrupos.commit();
      String html = "       <h1>"+this.getTitulo()+"</h1>\n";
//    analizo por que columna debo ordenar la tabla
      String ordenarPor = this.getPagina().getParameter(PARAMETROS_PAGINAS.ORDENAR_POR);
      // actividad a filtrar si selecciona una actividad desde el select
      String idActividadAFiltrar = this.getPagina().getParameter(PARAMETROS_PAGINAS.ID_ACTIVIDAD);
      // si cantidad a mostrar es cero quiere decir que debo mostrar todo
      helperRecibirYEvaluar = new HelperRecibirYEvaluar(this.getPagina());
      if(this.getPagina() instanceof PaginaGrupo){
    	  html += helperRecibirYEvaluar.generarHTMLTrabajosNoRecibidos(cantidadAMostrar,false,ordenarPor,idActividadAFiltrar);
      }else html += helperRecibirYEvaluar.generarHTMLTrabajosNoRecibidos(cantidadAMostrar,true,ordenarPor,idActividadAFiltrar);

      String queTrabajosEstamoisViendo = this.getPagina().getParameter(PARAMETROS_PAGINAS.TRABAJOS_RECIBIR_Y_EVALUAR);
      if(queTrabajosEstamoisViendo == null)queTrabajosEstamoisViendo = TIPO_TRABAJOS_ENVIAR_Y_RECIBIR.ACTIVIDADES_ALUMNO;

      // agregar link para ver los trabajos entregados
      if(this.getPagina() instanceof PaginaGrupo)
    	  html += helperRecibirYEvaluar.generarHTMLReferenciaAOtrosTrabajosGrupales(true);
      else
    	  html += helperRecibirYEvaluar.generarHTMLReferenciaAOtrosTrabajos(true, queTrabajosEstamoisViendo);

      if(this.getPagina() instanceof PaginaGrupo)html += helperRecibirYEvaluar.generarHTMLElOtroTrabajo(false);
      else html += helperRecibirYEvaluar.generarHTMLOtrosTrabajos(false);

      helperRecibirYEvaluar.commit();
      
      if (this.isPermisoEscritura()) html += htmlEvaluacion;
      // la vista la devuelve el contenido especifico de acuerdo a los permisos
      // del recurso
      
      html+= "";
      return html;
    }
    catch (Exception ex) {
    	ex.printStackTrace();
     	this.helperActividadesGrupos.rollback();
     	helperRecibirYEvaluar.rollback();
        return  comun.MensajeDeError.ERROR_EN_LA_GENERACION_DE_LA_PAGINA;
    }
  
  }

}